//go:build wireinject

package main

import (
	"github.com/go-kratos/kratos/v2"
	"github.com/go-kratos/kratos/v2/log"
	"github.com/google/wire"
	"go.opentelemetry.io/otel/sdk/trace"
	"shop-demo/app/product/service/internal/biz"
	"shop-demo/app/product/service/internal/conf"
	"shop-demo/app/product/service/internal/data"
	"shop-demo/app/product/service/internal/server"
	"shop-demo/app/product/service/internal/service"
)

func initApp(cs *conf.Server, cd *conf.Data, registry *conf.Registry, logger log.Logger, provider *trace.TracerProvider) (*kratos.App, func(), error) {
	panic(wire.Build(biz.ProviderSet, data.ProviderSet, service.ProviderSet, server.ProviderSet, newApp))
}
